package view;

import controller.Controleur;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.regex.Pattern;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;

/**
 * Listener utiliser pour lancer une demande de conversation
 * @author Lefevre, Thoue
 */
public class AppelListenner extends MouseAdapter {
    private PanelProfil profil;
    private Controleur controleur;
    /**
     * Constructeur
     * @param controleur controleur de l'application
     * @param profil element de la vue utiliser pour declencher une alerte visuelle si besoin
     */
    public AppelListenner(Controleur controleur,PanelProfil profil) {
        this.controleur = controleur;
        this.profil = profil;
    }
    /**
     * Evenement de clic sur le bouton
     * @param e - event de la souris
     */
     public void mouseClicked(MouseEvent e) {
         if (Pattern.matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}", profil.getAppelIp().getText())
                && Pattern.matches("^\\d*$", profil.getAppelPort().getText())) {
            controleur.appeler(profil.getAppelIp().getText(), Integer.valueOf(profil.getAppelPort().getText()));
         }else{
            JOptionPane.showMessageDialog(profil,"Veuillez rentrer une adresse ip et un port d'ecoute correct.");
        }
    }
     /**
     * Evenement de survol sur le bouton
     * @param e - event de la souris
     */
    @Override
    public void mouseEntered(MouseEvent e) {
        profil.getButtonAppel().setIcon(new ImageIcon(getClass().getResource("call-light.png")));
    }
    /**
     * Evenement de la fin du survol sur le bouton
     * @param e - event de la souris
     */
    @Override
    public void mouseExited(MouseEvent e) {
        profil.getButtonAppel().setIcon(new ImageIcon(getClass().getResource("call.png")));
    }    
}